This specification relates to detecting, installing and uninstalling a virtual machine monitor on a host device.
A virtual machine is a software construct that appears to be hardware on which a guest operating system and applications can be installed. In an emulator implementation, the virtual machine is an emulator, simulating all of the hardware used by the guest operating system and applications. In para-virtualization, the virtual machine allows the guest operating system and applications to run on the host hardware, but requires that the guest operating system be modified to use a special API (application programming interface) to run on the virtual machine monitor. In machine-level or full virtualization, the virtual machine allows a guest operating system that is implemented for the underlying host processor to be run without modification.
Platform virtualization can be performed on a given hardware platform by host software (e.g., a control program), which creates a simulated computer environment (e.g., a virtual machine) for its guest software. The guest software functions as though it were installed on a stand-alone hardware platform. Platform virtualization includes the virtualization of specific system resources, such as storage volumes, name spaces, and network resources.
In a para-virtualization or a machine-level virtualization implementation, a virtual machine monitor is used to bind the virtual machine to the underlying host hardware. In some architectures, the virtual machine monitor runs directly on the host hardware in a hypervisor configuration. In others, it runs as an application on the host operating system.
Virtual machine monitors (“VMM”), (e.g., VMware Inc.'s Player, Parallels Inc. Desktop for Mac or Microsoft Inc.'s Virtual PC), emulate computer hardware in software. This emulation allows software running on the hardware to see a constant view of the memory, the I/O chipset and the peripheral devices. The virtual machine monitors facilitate the portability of operating systems, installed applications and user environments between different host devices. A virtual machine (“VM”) can be one or more operating system containing applications and user environments (e.g., different operating systems installed on different partitions). By storing a personal virtual machine on a peripheral device (e.g., a portable storage device including a 1.8″ hard drives or flash memory connected to a host computer via high speed interface like USB or Firewire), users can carry around their personal computing environment without having to carry a laptop computer.
A host device can include a VMM to run a VM. Unfortunately, a host device may not have a VMM available. In this case, the user must manually install a VMM. If the user or the host device does not want the VMM left behind after it is used to run the VM, the user must also manually uninstall the VMM. Additionally, currently most peripheral devices have capacities that range from 1 GB to 80 GB, and thus copying the entire contents of the peripheral device to the host device can take minutes. Finally, transfer of private data to local storage of a host device can make the data more vulnerable to unauthorized access.